package com.meituan.verintreport.db.verint;

import com.meituan.verintreport.db.dto.EvalGoodRecordDto;
import com.meituan.verintreport.db.dto.ReportAdjusting1stDepartmentDto;
import com.meituan.verintreport.db.dto.ReportDetail1stDepartmentDto;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

@Mapper
public interface VerintEvalDataDao {
    List<EvalGoodRecordDto> getGoodRecordsSinceLastTime(@Param("lastSyncTime") String lastSyncTime);

    List<ReportDetail1stDepartmentDto> getReportDetailsFor1stDepartment(@Param("formKey") Integer formKey, @Param("lastSyncTime") String lastSyncTime);

    List<ReportDetail1stDepartmentDto> getReportDetailsFor1stDepartmentPaged(@Param("formKey") Integer formKey,
                                                                        @Param("startTime") String startTime,
                                                                        @Param("endTime") String endTime,
                                                                        @Param("pageIndex") Integer pageIndex,
                                                                        @Param("pageSize") Integer pageSize);

    List<ReportAdjusting1stDepartmentDto> getReportAdjustingFor1stDepartment(@Param("lastSyncTime") String lastSyncTime);

    List<ReportAdjusting1stDepartmentDto> getReportAdjustingFor1stDepartmentPaged(@Param("formKey") Integer formKey,
                                                                                  @Param("startTime") String startTime,
                                                                                  @Param("endTime") String endTime,
                                                                                  @Param("pageIndex") Integer pageIndex,
                                                                                  @Param("pageSize") Integer pageSize);

    List<EvalGoodRecordDto> getGoodRecordsDatePeriodPaged(
            @Param("startTime") String startTime,
            @Param("endTime") String endTime,
            @Param("pageIndex") Integer pageIndex,
            @Param("pageSize") Integer pageSize);
}
